/*
 * Model - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
public class Model extends Class50_Sub1_Sub4 {
	private int anInt1636 = 932;
	private int anInt1637 = 426;
	private boolean aBoolean1638 = false;
	private boolean aBoolean1639 = true;
	private int anInt1640 = -252;
	private boolean aBoolean1641 = false;
	public static int anInt1642;
	public static Model aModel_1643 = new Model(
		852);
	private static int[] anIntArray1644 = new int[2000];
	private static int[] anIntArray1645 = new int[2000];
	private static int[] anIntArray1646 = new int[2000];
	private static int[] anIntArray1647 = new int[2000];
	public int anInt1648;
	public int[] anIntArray1649;
	public int[] anIntArray1650;
	public int[] anIntArray1651;
	public int anInt1652;
	public int[] anIntArray1653;
	public int[] anIntArray1654;
	public int[] anIntArray1655;
	public int[] anIntArray1656;
	public int[] anIntArray1657;
	public int[] anIntArray1658;
	public int[] anIntArray1659;
	public int[] anIntArray1660;
	public int[] anIntArray1661;
	public int[] anIntArray1662;
	public int anInt1663;
	public int anInt1664;
	public int[] anIntArray1665;
	public int[] anIntArray1666;
	public int[] anIntArray1667;
	public int anInt1668;
	int anInt1669;
	int anInt1670;
	public int anInt1671;
	public int anInt1672;
	public int anInt1673;
	public int anInt1674;
	public int anInt1675;
	public int[] anIntArray1676;
	public int[] anIntArray1677;
	public int[][] anIntArrayArray1678;
	public int[][] anIntArrayArray1679;
	public boolean aBoolean1680 = false;
	Class40[] aClass40Array1681;
	static Class26[] aClass26Array1682;
	static Class32 aClass32_1683;
	static boolean[] aBooleanArray1684 = new boolean[4096];
	static boolean[] aBooleanArray1685 = new boolean[4096];
	static int[] anIntArray1686 = new int[4096];
	static int[] anIntArray1687 = new int[4096];
	static int[] anIntArray1688 = new int[4096];
	static int[] anIntArray1689 = new int[4096];
	static int[] anIntArray1690 = new int[4096];
	static int[] anIntArray1691 = new int[4096];
	static int[] anIntArray1692 = new int[1500];
	static int[][] anIntArrayArray1693 = new int[1500][512];
	static int[] anIntArray1694 = new int[12];
	static int[][] anIntArrayArray1695 = new int[12][2000];
	static int[] anIntArray1696 = new int[2000];
	static int[] anIntArray1697 = new int[2000];
	static int[] anIntArray1698 = new int[12];
	static int[] anIntArray1699 = new int[10];
	static int[] anIntArray1700 = new int[10];
	static int[] anIntArray1701 = new int[10];
	static int anInt1702;
	static int anInt1703;
	static int anInt1704;
	public static boolean aBoolean1705;
	public static int anInt1706;
	public static int anInt1707;
	public static int anInt1708;
	public static int[] anIntArray1709 = new int[1000];
	public static int[] anIntArray1710 = Renderer3D.anIntArray1536;
	public static int[] anIntArray1711 = Renderer3D.anIntArray1537;
	static int[] anIntArray1712 = Renderer3D.anIntArray1548;
	static int[] anIntArray1713 = Renderer3D.anIntArray1535;

	public static void method584(boolean bool) {
		Model.aClass26Array1682 = null;
		Model.aBooleanArray1684 = null;
		Model.aBooleanArray1685 = null;
		Model.anIntArray1686 = null;
		Model.anIntArray1687 = null;
		Model.anIntArray1688 = null;
		Model.anIntArray1689 = null;
		Model.anIntArray1690 = null;
		Model.anIntArray1691 = null;
		Model.anIntArray1692 = null;
		Model.anIntArrayArray1693 = null;
		Model.anIntArray1694 = null;
		Model.anIntArrayArray1695 = null;
		Model.anIntArray1696 = null;
		Model.anIntArray1697 = null;
		Model.anIntArray1698 = null;
		Model.anIntArray1710 = null;
		Model.anIntArray1711 = null;
		Model.anIntArray1712 = null;
		if (!bool) {
			Model.anIntArray1713 = null;
		}
	}

	public static void method585(int i, Class32 class32) {
		Model.aClass26Array1682 = new Class26[i];
		Model.aClass32_1683 = class32;
	}

	public static void method586(byte[] is, int i, byte i_0_) {
		if (i_0_ == 7) {
			if (is == null) {
				Class26 class26 = Model.aClass26Array1682[i] = new Class26();
				class26.anInt534 = 0;
				class26.anInt535 = 0;
				class26.anInt536 = 0;
			} else {
				Packet packet = new Packet(is);
				packet.offset = is.length - 18;
				Class26 class26 = Model.aClass26Array1682[i] = new Class26();
				class26.aByteArray533 = is;
				class26.anInt534 = packet.getUShort();
				class26.anInt535 = packet.getUShort();
				class26.anInt536 = packet.getUByte();
				int i_1_ = packet.getUByte();
				int i_2_ = packet.getUByte();
				int i_3_ = packet.getUByte();
				int i_4_ = packet.getUByte();
				int i_5_ = packet.getUByte();
				int i_6_ = packet.getUShort();
				int i_7_ = packet.getUShort();
				int i_8_ = packet.getUShort();
				int i_9_ = packet.getUShort();
				int i_10_ = 0;
				class26.anInt537 = i_10_;
				i_10_ += class26.anInt534;
				class26.anInt543 = i_10_;
				i_10_ += class26.anInt535;
				class26.anInt546 = i_10_;
				if (i_2_ == 255) {
					i_10_ += class26.anInt535;
				} else {
					class26.anInt546 = -i_2_ - 1;
				}
				class26.anInt548 = i_10_;
				if (i_4_ == 1) {
					i_10_ += class26.anInt535;
				} else {
					class26.anInt548 = -1;
				}
				class26.anInt545 = i_10_;
				if (i_1_ == 1) {
					i_10_ += class26.anInt535;
				} else {
					class26.anInt545 = -1;
				}
				class26.anInt541 = i_10_;
				if (i_5_ == 1) {
					i_10_ += class26.anInt534;
				} else {
					class26.anInt541 = -1;
				}
				class26.anInt547 = i_10_;
				if (i_3_ == 1) {
					i_10_ += class26.anInt535;
				} else {
					class26.anInt547 = -1;
				}
				class26.anInt542 = i_10_;
				i_10_ += i_9_;
				class26.anInt544 = i_10_;
				i_10_ += class26.anInt535 * 2;
				class26.anInt549 = i_10_;
				i_10_ += class26.anInt536 * 6;
				class26.anInt538 = i_10_;
				i_10_ += i_6_;
				class26.anInt539 = i_10_;
				i_10_ += i_7_;
				class26.anInt540 = i_10_;
				i_10_ += i_8_;
			}
		}
	}

	public static void method587(int i, int i_11_) {
		if (i_11_ == 1) {
			Model.aClass26Array1682[i] = null;
		}
	}

	public static Model method588(int i) {
		if (Model.aClass26Array1682 == null) {
			return null;
		}
		Class26 class26 = Model.aClass26Array1682[i];
		if (class26 == null) {
			Model.aClass32_1683.method323(i);
			return null;
		}
		return new Model(i, -478);
	}

	public static boolean method589(int i) {
		if (Model.aClass26Array1682 == null) {
			return false;
		}
		Class26 class26 = Model.aClass26Array1682[i];
		if (class26 == null) {
			Model.aClass32_1683.method323(i);
			return false;
		}
		return true;
	}

	private Model(int i) {
		if (i <= 0) {
			anInt1640 = -110;
		}
	}

	private Model(int i, int i_12_) {
		Model.anInt1642++;
		Class26 class26 = Model.aClass26Array1682[i];
		anInt1648 = class26.anInt534;
		anInt1652 = class26.anInt535;
		anInt1664 = class26.anInt536;
		anIntArray1649 = new int[anInt1648];
		anIntArray1650 = new int[anInt1648];
		anIntArray1651 = new int[anInt1648];
		anIntArray1653 = new int[anInt1652];
		anIntArray1654 = new int[anInt1652];
		anIntArray1655 = new int[anInt1652];
		anIntArray1665 = new int[anInt1664];
		anIntArray1666 = new int[anInt1664];
		anIntArray1667 = new int[anInt1664];
		if (class26.anInt541 >= 0) {
			anIntArray1676 = new int[anInt1648];
		}
		if (class26.anInt545 >= 0) {
			anIntArray1659 = new int[anInt1652];
		}
		if (class26.anInt546 >= 0) {
			anIntArray1660 = new int[anInt1652];
		} else {
			anInt1663 = -class26.anInt546 - 1;
		}
		if (class26.anInt547 >= 0) {
			anIntArray1661 = new int[anInt1652];
		}
		if (class26.anInt548 >= 0) {
			anIntArray1677 = new int[anInt1652];
		}
		anIntArray1662 = new int[anInt1652];
		Packet packet = new Packet(class26.aByteArray533);
		packet.offset = class26.anInt537;
		Packet packet_13_ = new Packet(class26.aByteArray533);
		packet_13_.offset = class26.anInt538;
		Packet packet_14_ = new Packet(class26.aByteArray533);
		packet_14_.offset = class26.anInt539;
		if (i_12_ >= 0) {
			aBoolean1641 = !aBoolean1641;
		}
		Packet packet_15_ = new Packet(class26.aByteArray533);
		packet_15_.offset = class26.anInt540;
		Packet packet_16_ = new Packet(class26.aByteArray533);
		packet_16_.offset = class26.anInt541;
		int i_17_ = 0;
		int i_18_ = 0;
		int i_19_ = 0;
		for (int i_20_ = 0; i_20_ < anInt1648; i_20_++) {
			int i_21_ = packet.getUByte();
			int i_22_ = 0;
			if ((i_21_ & 0x1) != 0) {
				i_22_ = packet_13_.getUSmart();
			}
			int i_23_ = 0;
			if ((i_21_ & 0x2) != 0) {
				i_23_ = packet_14_.getUSmart();
			}
			int i_24_ = 0;
			if ((i_21_ & 0x4) != 0) {
				i_24_ = packet_15_.getUSmart();
			}
			anIntArray1649[i_20_] = i_17_ + i_22_;
			anIntArray1650[i_20_] = i_18_ + i_23_;
			anIntArray1651[i_20_] = i_19_ + i_24_;
			i_17_ = anIntArray1649[i_20_];
			i_18_ = anIntArray1650[i_20_];
			i_19_ = anIntArray1651[i_20_];
			if (anIntArray1676 != null) {
				anIntArray1676[i_20_] = packet_16_.getUByte();
			}
		}
		packet.offset = class26.anInt544;
		packet_13_.offset = class26.anInt545;
		packet_14_.offset = class26.anInt546;
		packet_15_.offset = class26.anInt547;
		packet_16_.offset = class26.anInt548;
		for (int i_25_ = 0; i_25_ < anInt1652; i_25_++) {
			anIntArray1662[i_25_] = packet.getUShort();
			if (anIntArray1659 != null) {
				anIntArray1659[i_25_] = packet_13_.getUByte();
			}
			if (anIntArray1660 != null) {
				anIntArray1660[i_25_] = packet_14_.getUByte();
			}
			if (anIntArray1661 != null) {
				anIntArray1661[i_25_] = packet_15_.getUByte();
			}
			if (anIntArray1677 != null) {
				anIntArray1677[i_25_] = packet_16_.getUByte();
			}
		}
		packet.offset = class26.anInt542;
		packet_13_.offset = class26.anInt543;
		int i_26_ = 0;
		int i_27_ = 0;
		int i_28_ = 0;
		int i_29_ = 0;
		for (int i_30_ = 0; i_30_ < anInt1652; i_30_++) {
			int i_31_ = packet_13_.getUByte();
			if (i_31_ == 1) {
				i_26_ = packet.getUSmart() + i_29_;
				i_29_ = i_26_;
				i_27_ = packet.getUSmart() + i_29_;
				i_29_ = i_27_;
				i_28_ = packet.getUSmart() + i_29_;
				i_29_ = i_28_;
				anIntArray1653[i_30_] = i_26_;
				anIntArray1654[i_30_] = i_27_;
				anIntArray1655[i_30_] = i_28_;
			}
			if (i_31_ == 2) {
				i_27_ = i_28_;
				i_28_ = packet.getUSmart() + i_29_;
				i_29_ = i_28_;
				anIntArray1653[i_30_] = i_26_;
				anIntArray1654[i_30_] = i_27_;
				anIntArray1655[i_30_] = i_28_;
			}
			if (i_31_ == 3) {
				i_26_ = i_28_;
				i_28_ = packet.getUSmart() + i_29_;
				i_29_ = i_28_;
				anIntArray1653[i_30_] = i_26_;
				anIntArray1654[i_30_] = i_27_;
				anIntArray1655[i_30_] = i_28_;
			}
			if (i_31_ == 4) {
				int i_32_ = i_26_;
				i_26_ = i_27_;
				i_27_ = i_32_;
				i_28_ = packet.getUSmart() + i_29_;
				i_29_ = i_28_;
				anIntArray1653[i_30_] = i_26_;
				anIntArray1654[i_30_] = i_27_;
				anIntArray1655[i_30_] = i_28_;
			}
		}
		packet.offset = class26.anInt549;
		for (int i_33_ = 0; i_33_ < anInt1664; i_33_++) {
			anIntArray1665[i_33_] = packet.getUShort();
			anIntArray1666[i_33_] = packet.getUShort();
			anIntArray1667[i_33_] = packet.getUShort();
		}
	}

	public Model(int i, Model[] class50_sub1_sub4_sub4s,
		byte i_34_) {
		Model.anInt1642++;
		boolean bool = false;
		boolean bool_35_ = false;
		boolean bool_36_ = false;
		boolean bool_37_ = false;
		anInt1648 = 0;
		anInt1652 = 0;
		anInt1664 = 0;
		anInt1663 = -1;
		for (int i_38_ = 0; i_38_ < i; i_38_++) {
			Model model_39_ = class50_sub1_sub4_sub4s[i_38_];
			if (model_39_ != null) {
				anInt1648 += model_39_.anInt1648;
				anInt1652 += model_39_.anInt1652;
				anInt1664 += model_39_.anInt1664;
				bool = bool | model_39_.anIntArray1659 != null;
				if (model_39_.anIntArray1660 != null) {
					bool_35_ = true;
				} else {
					if (anInt1663 == -1) {
						anInt1663 = model_39_.anInt1663;
					}
					if (anInt1663 != model_39_.anInt1663) {
						bool_35_ = true;
					}
				}
				bool_36_ = (bool_36_ | model_39_.anIntArray1661 != null);
				bool_37_ = (bool_37_ | model_39_.anIntArray1677 != null);
			}
		}
		anIntArray1649 = new int[anInt1648];
		anIntArray1650 = new int[anInt1648];
		anIntArray1651 = new int[anInt1648];
		if (i_34_ != -89) {
			throw new NullPointerException();
		}
		anIntArray1676 = new int[anInt1648];
		anIntArray1653 = new int[anInt1652];
		anIntArray1654 = new int[anInt1652];
		anIntArray1655 = new int[anInt1652];
		anIntArray1665 = new int[anInt1664];
		anIntArray1666 = new int[anInt1664];
		anIntArray1667 = new int[anInt1664];
		if (bool) {
			anIntArray1659 = new int[anInt1652];
		}
		if (bool_35_) {
			anIntArray1660 = new int[anInt1652];
		}
		if (bool_36_) {
			anIntArray1661 = new int[anInt1652];
		}
		if (bool_37_) {
			anIntArray1677 = new int[anInt1652];
		}
		anIntArray1662 = new int[anInt1652];
		anInt1648 = 0;
		anInt1652 = 0;
		anInt1664 = 0;
		int i_40_ = 0;
		for (int i_41_ = 0; i_41_ < i; i_41_++) {
			Model model_42_ = class50_sub1_sub4_sub4s[i_41_];
			if (model_42_ != null) {
				for (int i_43_ = 0; i_43_ < model_42_.anInt1652; i_43_++) {
					if (bool) {
						if (model_42_.anIntArray1659 == null) {
							anIntArray1659[anInt1652] = 0;
						} else {
							int i_44_ = (model_42_.anIntArray1659[i_43_]);
							if ((i_44_ & 0x2) == 2) {
								i_44_ += i_40_ << 2;
							}
							anIntArray1659[anInt1652] = i_44_;
						}
					}
					if (bool_35_) {
						if (model_42_.anIntArray1660 == null) {
							anIntArray1660[anInt1652] = model_42_.anInt1663;
						} else {
							anIntArray1660[anInt1652] = (model_42_.anIntArray1660[i_43_]);
						}
					}
					if (bool_36_) {
						if (model_42_.anIntArray1661 == null) {
							anIntArray1661[anInt1652] = 0;
						} else {
							anIntArray1661[anInt1652] = (model_42_.anIntArray1661[i_43_]);
						}
					}
					if (bool_37_ && model_42_.anIntArray1677 != null) {
						anIntArray1677[anInt1652] = model_42_.anIntArray1677[i_43_];
					}
					anIntArray1662[anInt1652] = model_42_.anIntArray1662[i_43_];
					anIntArray1653[anInt1652] = method591(model_42_,
						(model_42_.anIntArray1653[i_43_]));
					anIntArray1654[anInt1652] = method591(model_42_,
						(model_42_.anIntArray1654[i_43_]));
					anIntArray1655[anInt1652] = method591(model_42_,
						(model_42_.anIntArray1655[i_43_]));
					anInt1652++;
				}
				for (int i_45_ = 0; i_45_ < model_42_.anInt1664; i_45_++) {
					anIntArray1665[anInt1664] = method591(model_42_,
						(model_42_.anIntArray1665[i_45_]));
					anIntArray1666[anInt1664] = method591(model_42_,
						(model_42_.anIntArray1666[i_45_]));
					anIntArray1667[anInt1664] = method591(model_42_,
						(model_42_.anIntArray1667[i_45_]));
					anInt1664++;
				}
				i_40_ += model_42_.anInt1664;
			}
		}
	}

	public Model(int i, boolean bool, int i_46_,
		Model[] class50_sub1_sub4_sub4s) {
		Model.anInt1642++;
		boolean bool_47_ = false;
		boolean bool_48_ = false;
		boolean bool_49_ = false;
		boolean bool_50_ = false;
		anInt1648 = 0;
		anInt1652 = 0;
		anInt1664 = 0;
		anInt1663 = -1;
		for (int i_51_ = 0; i_51_ < i; i_51_++) {
			Model model_52_ = class50_sub1_sub4_sub4s[i_51_];
			if (model_52_ != null) {
				anInt1648 += model_52_.anInt1648;
				anInt1652 += model_52_.anInt1652;
				anInt1664 += model_52_.anInt1664;
				bool_47_ = (bool_47_ | model_52_.anIntArray1659 != null);
				if (model_52_.anIntArray1660 != null) {
					bool_48_ = true;
				} else {
					if (anInt1663 == -1) {
						anInt1663 = model_52_.anInt1663;
					}
					if (anInt1663 != model_52_.anInt1663) {
						bool_48_ = true;
					}
				}
				bool_49_ = (bool_49_ | model_52_.anIntArray1661 != null);
				bool_50_ = (bool_50_ | model_52_.anIntArray1662 != null);
			}
		}
		anIntArray1649 = new int[anInt1648];
		anIntArray1650 = new int[anInt1648];
		anIntArray1651 = new int[anInt1648];
		anIntArray1653 = new int[anInt1652];
		anIntArray1654 = new int[anInt1652];
		anIntArray1655 = new int[anInt1652];
		anIntArray1656 = new int[anInt1652];
		anIntArray1657 = new int[anInt1652];
		anIntArray1658 = new int[anInt1652];
		anIntArray1665 = new int[anInt1664];
		anIntArray1666 = new int[anInt1664];
		anIntArray1667 = new int[anInt1664];
		if (bool_47_) {
			anIntArray1659 = new int[anInt1652];
		}
		if (bool_48_) {
			anIntArray1660 = new int[anInt1652];
		}
		if (bool_49_) {
			anIntArray1661 = new int[anInt1652];
		}
		if (bool_50_) {
			anIntArray1662 = new int[anInt1652];
		}
		anInt1648 = 0;
		if (i_46_ != 0) {
			throw new NullPointerException();
		}
		anInt1652 = 0;
		anInt1664 = 0;
		int i_53_ = 0;
		for (int i_54_ = 0; i_54_ < i; i_54_++) {
			Model model_55_ = class50_sub1_sub4_sub4s[i_54_];
			if (model_55_ != null) {
				int i_56_ = anInt1648;
				for (int i_57_ = 0; i_57_ < model_55_.anInt1648; i_57_++) {
					anIntArray1649[anInt1648] = model_55_.anIntArray1649[i_57_];
					anIntArray1650[anInt1648] = model_55_.anIntArray1650[i_57_];
					anIntArray1651[anInt1648] = model_55_.anIntArray1651[i_57_];
					anInt1648++;
				}
				for (int i_58_ = 0; i_58_ < model_55_.anInt1652; i_58_++) {
					anIntArray1653[anInt1652] = (model_55_.anIntArray1653[i_58_] + i_56_);
					anIntArray1654[anInt1652] = (model_55_.anIntArray1654[i_58_] + i_56_);
					anIntArray1655[anInt1652] = (model_55_.anIntArray1655[i_58_] + i_56_);
					anIntArray1656[anInt1652] = model_55_.anIntArray1656[i_58_];
					anIntArray1657[anInt1652] = model_55_.anIntArray1657[i_58_];
					anIntArray1658[anInt1652] = model_55_.anIntArray1658[i_58_];
					if (bool_47_) {
						if (model_55_.anIntArray1659 == null) {
							anIntArray1659[anInt1652] = 0;
						} else {
							int i_59_ = (model_55_.anIntArray1659[i_58_]);
							if ((i_59_ & 0x2) == 2) {
								i_59_ += i_53_ << 2;
							}
							anIntArray1659[anInt1652] = i_59_;
						}
					}
					if (bool_48_) {
						if (model_55_.anIntArray1660 == null) {
							anIntArray1660[anInt1652] = model_55_.anInt1663;
						} else {
							anIntArray1660[anInt1652] = (model_55_.anIntArray1660[i_58_]);
						}
					}
					if (bool_49_) {
						if (model_55_.anIntArray1661 == null) {
							anIntArray1661[anInt1652] = 0;
						} else {
							anIntArray1661[anInt1652] = (model_55_.anIntArray1661[i_58_]);
						}
					}
					if (bool_50_ && model_55_.anIntArray1662 != null) {
						anIntArray1662[anInt1652] = model_55_.anIntArray1662[i_58_];
					}
					anInt1652++;
				}
				for (int i_60_ = 0; i_60_ < model_55_.anInt1664; i_60_++) {
					anIntArray1665[anInt1664] = (model_55_.anIntArray1665[i_60_] + i_56_);
					anIntArray1666[anInt1664] = (model_55_.anIntArray1666[i_60_] + i_56_);
					anIntArray1667[anInt1664] = (model_55_.anIntArray1667[i_60_] + i_56_);
					anInt1664++;
				}
				i_53_ += model_55_.anInt1664;
			}
		}
		method592();
	}

	public Model(boolean bool, boolean bool_61_, boolean bool_62_,
		Model model_63_, boolean bool_64_) {
		Model.anInt1642++;
		anInt1648 = model_63_.anInt1648;
		anInt1652 = model_63_.anInt1652;
		anInt1664 = model_63_.anInt1664;
		if (bool_61_) {
			anInt1640 = 498;
		}
		if (bool) {
			anIntArray1649 = model_63_.anIntArray1649;
			anIntArray1650 = model_63_.anIntArray1650;
			anIntArray1651 = model_63_.anIntArray1651;
		} else {
			anIntArray1649 = new int[anInt1648];
			anIntArray1650 = new int[anInt1648];
			anIntArray1651 = new int[anInt1648];
			for (int i = 0; i < anInt1648; i++) {
				anIntArray1649[i] = model_63_.anIntArray1649[i];
				anIntArray1650[i] = model_63_.anIntArray1650[i];
				anIntArray1651[i] = model_63_.anIntArray1651[i];
			}
		}
		if (bool_62_) {
			anIntArray1662 = model_63_.anIntArray1662;
		} else {
			anIntArray1662 = new int[anInt1652];
			for (int i = 0; i < anInt1652; i++) {
				anIntArray1662[i] = model_63_.anIntArray1662[i];
			}
		}
		if (bool_64_) {
			anIntArray1661 = model_63_.anIntArray1661;
		} else {
			anIntArray1661 = new int[anInt1652];
			if (model_63_.anIntArray1661 == null) {
				for (int i = 0; i < anInt1652; i++) {
					anIntArray1661[i] = 0;
				}
			} else {
				for (int i = 0; i < anInt1652; i++) {
					anIntArray1661[i] = model_63_.anIntArray1661[i];
				}
			}
		}
		anIntArray1676 = model_63_.anIntArray1676;
		anIntArray1677 = model_63_.anIntArray1677;
		anIntArray1659 = model_63_.anIntArray1659;
		anIntArray1653 = model_63_.anIntArray1653;
		anIntArray1654 = model_63_.anIntArray1654;
		anIntArray1655 = model_63_.anIntArray1655;
		anIntArray1660 = model_63_.anIntArray1660;
		anInt1663 = model_63_.anInt1663;
		anIntArray1665 = model_63_.anIntArray1665;
		anIntArray1666 = model_63_.anIntArray1666;
		anIntArray1667 = model_63_.anIntArray1667;
	}

	public Model(boolean bool, boolean bool_65_, int i,
		Model model_66_) {
		Model.anInt1642++;
		anInt1648 = model_66_.anInt1648;
		anInt1652 = model_66_.anInt1652;
		anInt1664 = model_66_.anInt1664;
		if (bool) {
			anIntArray1650 = new int[anInt1648];
			for (int i_67_ = 0; i_67_ < anInt1648; i_67_++) {
				anIntArray1650[i_67_] = model_66_.anIntArray1650[i_67_];
			}
		} else {
			anIntArray1650 = model_66_.anIntArray1650;
		}
		if (bool_65_) {
			anIntArray1656 = new int[anInt1652];
			anIntArray1657 = new int[anInt1652];
			anIntArray1658 = new int[anInt1652];
			for (int i_68_ = 0; i_68_ < anInt1652; i_68_++) {
				anIntArray1656[i_68_] = model_66_.anIntArray1656[i_68_];
				anIntArray1657[i_68_] = model_66_.anIntArray1657[i_68_];
				anIntArray1658[i_68_] = model_66_.anIntArray1658[i_68_];
			}
			anIntArray1659 = new int[anInt1652];
			if (model_66_.anIntArray1659 == null) {
				for (int i_69_ = 0; i_69_ < anInt1652; i_69_++) {
					anIntArray1659[i_69_] = 0;
				}
			} else {
				for (int i_70_ = 0; i_70_ < anInt1652; i_70_++) {
					anIntArray1659[i_70_] = model_66_.anIntArray1659[i_70_];
				}
			}
			((Class50_Sub1_Sub4) this).aClass40Array1474 = new Class40[anInt1648];
			for (int i_71_ = 0; i_71_ < anInt1648; i_71_++) {
				Class40 class40 = (((Class50_Sub1_Sub4) this).aClass40Array1474[i_71_] = new Class40());
				Class40 class40_72_ = (((Class50_Sub1_Sub4) model_66_).aClass40Array1474[i_71_]);
				(class40).anInt693 = (class40_72_).anInt693;
				(class40).anInt694 = (class40_72_).anInt694;
				(class40).anInt695 = (class40_72_).anInt695;
				(class40).anInt696 = (class40_72_).anInt696;
			}
			(this).aClass40Array1681 = ((model_66_).aClass40Array1681);
		} else {
			anIntArray1656 = model_66_.anIntArray1656;
			anIntArray1657 = model_66_.anIntArray1657;
			anIntArray1658 = model_66_.anIntArray1658;
			anIntArray1659 = model_66_.anIntArray1659;
		}
		anIntArray1649 = model_66_.anIntArray1649;
		anIntArray1651 = model_66_.anIntArray1651;
		if (i != 0) {
			aBoolean1638 = !aBoolean1638;
		}
		anIntArray1662 = model_66_.anIntArray1662;
		anIntArray1661 = model_66_.anIntArray1661;
		anIntArray1660 = model_66_.anIntArray1660;
		anInt1663 = model_66_.anInt1663;
		anIntArray1653 = model_66_.anIntArray1653;
		anIntArray1654 = model_66_.anIntArray1654;
		anIntArray1655 = model_66_.anIntArray1655;
		anIntArray1665 = model_66_.anIntArray1665;
		anIntArray1666 = model_66_.anIntArray1666;
		anIntArray1667 = model_66_.anIntArray1667;
		anInt1475 = model_66_.anInt1475;
		anInt1672 = model_66_.anInt1672;
		anInt1671 = model_66_.anInt1671;
		anInt1674 = model_66_.anInt1674;
		anInt1673 = model_66_.anInt1673;
		(this).anInt1669 = (model_66_).anInt1669;
		(this).anInt1670 = (model_66_).anInt1670;
		anInt1668 = model_66_.anInt1668;
	}

	public void method590(boolean bool, Model model_73_, int i) {
		anInt1648 = model_73_.anInt1648;
		anInt1652 = model_73_.anInt1652;
		anInt1664 = model_73_.anInt1664;
		if (Model.anIntArray1644.length < anInt1648) {
			Model.anIntArray1644 = new int[anInt1648 + 100];
			Model.anIntArray1645 = new int[anInt1648 + 100];
			Model.anIntArray1646 = new int[anInt1648 + 100];
		}
		anIntArray1649 = Model.anIntArray1644;
		anIntArray1650 = Model.anIntArray1645;
		if (i == 1244) {
			anIntArray1651 = Model.anIntArray1646;
			for (int i_74_ = 0; i_74_ < anInt1648; i_74_++) {
				anIntArray1649[i_74_] = model_73_.anIntArray1649[i_74_];
				anIntArray1650[i_74_] = model_73_.anIntArray1650[i_74_];
				anIntArray1651[i_74_] = model_73_.anIntArray1651[i_74_];
			}
			if (bool) {
				anIntArray1661 = model_73_.anIntArray1661;
			} else {
				if (Model.anIntArray1647.length < anInt1652) {
					Model.anIntArray1647 = new int[anInt1652 + 100];
				}
				anIntArray1661 = Model.anIntArray1647;
				if (model_73_.anIntArray1661 == null) {
					for (int i_75_ = 0; i_75_ < anInt1652; i_75_++) {
						anIntArray1661[i_75_] = 0;
					}
				} else {
					for (int i_76_ = 0; i_76_ < anInt1652; i_76_++) {
						anIntArray1661[i_76_] = model_73_.anIntArray1661[i_76_];
					}
				}
			}
			anIntArray1659 = model_73_.anIntArray1659;
			anIntArray1662 = model_73_.anIntArray1662;
			anIntArray1660 = model_73_.anIntArray1660;
			anInt1663 = model_73_.anInt1663;
			anIntArrayArray1679 = model_73_.anIntArrayArray1679;
			anIntArrayArray1678 = model_73_.anIntArrayArray1678;
			anIntArray1653 = model_73_.anIntArray1653;
			anIntArray1654 = model_73_.anIntArray1654;
			anIntArray1655 = model_73_.anIntArray1655;
			anIntArray1656 = model_73_.anIntArray1656;
			anIntArray1657 = model_73_.anIntArray1657;
			anIntArray1658 = model_73_.anIntArray1658;
			anIntArray1665 = model_73_.anIntArray1665;
			anIntArray1666 = model_73_.anIntArray1666;
			anIntArray1667 = model_73_.anIntArray1667;
		}
	}

	private final int method591(Model model_77_, int i) {
		int i_78_ = -1;
		int i_79_ = model_77_.anIntArray1649[i];
		int i_80_ = model_77_.anIntArray1650[i];
		int i_81_ = model_77_.anIntArray1651[i];
		for (int i_82_ = 0; i_82_ < anInt1648; i_82_++) {
			if (i_79_ == anIntArray1649[i_82_] && i_80_ == anIntArray1650[i_82_]
				&& i_81_ == anIntArray1651[i_82_]) {
				i_78_ = i_82_;
				break;
			}
		}
		if (i_78_ == -1) {
			anIntArray1649[anInt1648] = i_79_;
			anIntArray1650[anInt1648] = i_80_;
			anIntArray1651[anInt1648] = i_81_;
			if (model_77_.anIntArray1676 != null) {
				anIntArray1676[anInt1648] = model_77_.anIntArray1676[i];
			}
			i_78_ = anInt1648++;
		}
		return i_78_;
	}

	public void method592() {
		anInt1475 = 0;
		anInt1671 = 0;
		anInt1672 = 0;
		for (int i_83_ = 0; i_83_ < anInt1648; i_83_++) {
			int i_84_ = anIntArray1649[i_83_];
			int i_85_ = anIntArray1650[i_83_];
			int i_86_ = anIntArray1651[i_83_];
			if (-i_85_ > anInt1475) {
				anInt1475 = -i_85_;
			}
			if (i_85_ > anInt1672) {
				anInt1672 = i_85_;
			}
			int i_87_ = i_84_ * i_84_ + i_86_ * i_86_;
			if (i_87_ > anInt1671) {
				anInt1671 = i_87_;
			}
		}
		anInt1671 = (int) (Math.sqrt(anInt1671) + 0.99);
		anInt1674 = (int) (Math.sqrt((anInt1671 * anInt1671 + anInt1475 * anInt1475)) + 0.99);
		anInt1673 = anInt1674
			+ (int) (Math.sqrt((anInt1671 * anInt1671 + anInt1672 * anInt1672)) + 0.99);
	}

	public void method593(int i) {
		anInt1475 = 0;
		if (i == 6) {
			anInt1672 = 0;
			for (int i_88_ = 0; i_88_ < anInt1648; i_88_++) {
				int i_89_ = anIntArray1650[i_88_];
				if (-i_89_ > anInt1475) {
					anInt1475 = -i_89_;
				}
				if (i_89_ > anInt1672) {
					anInt1672 = i_89_;
				}
			}
			anInt1674 = (int) (Math.sqrt((anInt1671 * anInt1671 + anInt1475 * anInt1475)) + 0.99);
			anInt1673 = (anInt1674 + (int) (Math.sqrt((anInt1671 * anInt1671 + anInt1672
				* anInt1672)) + 0.99));
		}
	}

	public void method594(int i) {
		anInt1475 = 0;
		anInt1671 = 0;
		anInt1672 = 0;
		int i_90_ = 32767;
		int i_91_ = -32767;
		int i_92_ = -32767;
		int i_93_ = 32767;
		for (int i_94_ = 0; i_94_ < anInt1648; i_94_++) {
			int i_95_ = anIntArray1649[i_94_];
			int i_96_ = anIntArray1650[i_94_];
			int i_97_ = anIntArray1651[i_94_];
			if (i_95_ < i_90_) {
				i_90_ = i_95_;
			}
			if (i_95_ > i_91_) {
				i_91_ = i_95_;
			}
			if (i_97_ < i_93_) {
				i_93_ = i_97_;
			}
			if (i_97_ > i_92_) {
				i_92_ = i_97_;
			}
			if (-i_96_ > anInt1475) {
				anInt1475 = -i_96_;
			}
			if (i_96_ > anInt1672) {
				anInt1672 = i_96_;
			}
			int i_98_ = i_95_ * i_95_ + i_97_ * i_97_;
			if (i_98_ > anInt1671) {
				anInt1671 = i_98_;
			}
		}
		anInt1671 = (int) Math.sqrt(anInt1671);
		anInt1674 = (int) Math.sqrt((anInt1671 * anInt1671 + anInt1475 * anInt1475));
		anInt1673 = anInt1674 + (int) Math.sqrt((anInt1671 * anInt1671 + anInt1672 * anInt1672));
		(this).anInt1669 = (i_90_ << 16) + (i_91_ & 0xffff);
		if (i <= 0) {
			anInt1637 = 50;
		}
		(this).anInt1670 = (i_92_ << 16) + (i_93_ & 0xffff);
	}

	public void method595(int i) {
		if (i == 7) {
			if (anIntArray1676 != null) {
				int[] is = new int[256];
				int i_99_ = 0;
				for (int i_100_ = 0; i_100_ < anInt1648; i_100_++) {
					int i_101_ = anIntArray1676[i_100_];
					is[i_101_]++;
					if (i_101_ > i_99_) {
						i_99_ = i_101_;
					}
				}
				anIntArrayArray1678 = new int[i_99_ + 1][];
				for (int i_102_ = 0; i_102_ <= i_99_; i_102_++) {
					anIntArrayArray1678[i_102_] = new int[is[i_102_]];
					is[i_102_] = 0;
				}
				for (int i_103_ = 0; i_103_ < anInt1648; i_103_++) {
					int i_104_ = anIntArray1676[i_103_];
					anIntArrayArray1678[i_104_][is[i_104_]++] = i_103_;
				}
				anIntArray1676 = null;
			}
			if (anIntArray1677 != null) {
				int[] is = new int[256];
				int i_105_ = 0;
				for (int i_106_ = 0; i_106_ < anInt1652; i_106_++) {
					int i_107_ = anIntArray1677[i_106_];
					is[i_107_]++;
					if (i_107_ > i_105_) {
						i_105_ = i_107_;
					}
				}
				anIntArrayArray1679 = new int[i_105_ + 1][];
				for (int i_108_ = 0; i_108_ <= i_105_; i_108_++) {
					anIntArrayArray1679[i_108_] = new int[is[i_108_]];
					is[i_108_] = 0;
				}
				for (int i_109_ = 0; i_109_ < anInt1652; i_109_++) {
					int i_110_ = anIntArray1677[i_109_];
					anIntArrayArray1679[i_110_][is[i_110_]++] = i_109_;
				}
				anIntArray1677 = null;
			}
		}
	}

	public void method596(int i, byte i_111_) {
		if (anIntArrayArray1678 != null && i != -1) {
			Class21 class21 = Class21.method238(i);
			if (class21 != null) {
				Class41 class41 = class21.aClass41_432;
				if (i_111_ == 6) {
				} else {
					return;
				}
				Model.anInt1702 = 0;
				Model.anInt1703 = 0;
				Model.anInt1704 = 0;
				for (int i_112_ = 0; i_112_ < class21.anInt433; i_112_++) {
					int i_113_ = class21.anIntArray434[i_112_];
					method598(class41.anIntArray698[i_113_], class41.anIntArrayArray699[i_113_],
						class21.anIntArray435[i_112_], class21.anIntArray436[i_112_],
						class21.anIntArray437[i_112_]);
				}
			}
		}
	}

	public void method597(int i, int i_114_, int i_115_, int[] is) {
		if (i_115_ != -1) {
			if (is == null || i == -1) {
				method596(i_115_, (byte) 6);
			} else {
				Class21 class21 = Class21.method238(i_115_);
				if (class21 != null) {
					Class21 class21_116_ = Class21.method238(i);
					if (class21_116_ == null) {
						method596(i_115_, (byte) 6);
					} else {
						Class41 class41 = class21.aClass41_432;
						Model.anInt1702 = 0;
						if (i_114_ != 0) {
							aBoolean1641 = !aBoolean1641;
						}
						Model.anInt1703 = 0;
						Model.anInt1704 = 0;
						int i_117_ = 0;
						int i_118_ = is[i_117_++];
						for (int i_119_ = 0; i_119_ < class21.anInt433; i_119_++) {
							int i_120_;
							for (i_120_ = class21.anIntArray434[i_119_]; i_120_ > i_118_; i_118_ = is[i_117_++]) {
								/* empty */
							}
							if (i_120_ != i_118_ || class41.anIntArray698[i_120_] == 0) {
								method598(class41.anIntArray698[i_120_],
									class41.anIntArrayArray699[i_120_],
									class21.anIntArray435[i_119_], class21.anIntArray436[i_119_],
									class21.anIntArray437[i_119_]);
							}
						}
						Model.anInt1702 = 0;
						Model.anInt1703 = 0;
						Model.anInt1704 = 0;
						i_117_ = 0;
						i_118_ = is[i_117_++];
						for (int i_121_ = 0; i_121_ < class21_116_.anInt433; i_121_++) {
							int i_122_;
							for (i_122_ = class21_116_.anIntArray434[i_121_]; i_122_ > i_118_; i_118_ = is[i_117_++]) {
								/* empty */
							}
							if (i_122_ == i_118_ || class41.anIntArray698[i_122_] == 0) {
								method598(class41.anIntArray698[i_122_],
									class41.anIntArrayArray699[i_122_],
									class21_116_.anIntArray435[i_121_],
									class21_116_.anIntArray436[i_121_],
									class21_116_.anIntArray437[i_121_]);
							}
						}
					}
				}
			}
		}
	}

	private void method598(int i, int[] is, int i_123_, int i_124_, int i_125_) {
		int i_126_ = is.length;
		if (i == 0) {
			int i_127_ = 0;
			Model.anInt1702 = 0;
			Model.anInt1703 = 0;
			Model.anInt1704 = 0;
			for (int i_128_ = 0; i_128_ < i_126_; i_128_++) {
				int i_129_ = is[i_128_];
				if (i_129_ < anIntArrayArray1678.length) {
					int[] is_130_ = anIntArrayArray1678[i_129_];
					for (int i_132_ : is_130_) {
						Model.anInt1702 += anIntArray1649[i_132_];
						Model.anInt1703 += anIntArray1650[i_132_];
						Model.anInt1704 += anIntArray1651[i_132_];
						i_127_++;
					}
				}
			}
			if (i_127_ > 0) {
				Model.anInt1702 = Model.anInt1702 / i_127_
					+ i_123_;
				Model.anInt1703 = Model.anInt1703 / i_127_
					+ i_124_;
				Model.anInt1704 = Model.anInt1704 / i_127_
					+ i_125_;
			} else {
				Model.anInt1702 = i_123_;
				Model.anInt1703 = i_124_;
				Model.anInt1704 = i_125_;
			}
		} else if (i == 1) {
			for (int i_133_ = 0; i_133_ < i_126_; i_133_++) {
				int i_134_ = is[i_133_];
				if (i_134_ < anIntArrayArray1678.length) {
					int[] is_135_ = anIntArrayArray1678[i_134_];
					for (int element : is_135_) {
						int i_137_ = element;
						anIntArray1649[i_137_] += i_123_;
						anIntArray1650[i_137_] += i_124_;
						anIntArray1651[i_137_] += i_125_;
					}
				}
			}
		} else if (i == 2) {
			for (int i_138_ = 0; i_138_ < i_126_; i_138_++) {
				int i_139_ = is[i_138_];
				if (i_139_ < anIntArrayArray1678.length) {
					int[] is_140_ = anIntArrayArray1678[i_139_];
					for (int element : is_140_) {
						int i_142_ = element;
						anIntArray1649[i_142_] -= Model.anInt1702;
						anIntArray1650[i_142_] -= Model.anInt1703;
						anIntArray1651[i_142_] -= Model.anInt1704;
						int i_143_ = (i_123_ & 0xff) * 8;
						int i_144_ = (i_124_ & 0xff) * 8;
						int i_145_ = (i_125_ & 0xff) * 8;
						if (i_145_ != 0) {
							int i_146_ = Model.anIntArray1710[i_145_];
							int i_147_ = Model.anIntArray1711[i_145_];
							int i_148_ = ((anIntArray1650[i_142_] * i_146_ + anIntArray1649[i_142_]
								* i_147_) >> 16);
							anIntArray1650[i_142_] = (anIntArray1650[i_142_] * i_147_ - anIntArray1649[i_142_]
								* i_146_) >> 16;
							anIntArray1649[i_142_] = i_148_;
						}
						if (i_143_ != 0) {
							int i_149_ = Model.anIntArray1710[i_143_];
							int i_150_ = Model.anIntArray1711[i_143_];
							int i_151_ = ((anIntArray1650[i_142_] * i_150_ - anIntArray1651[i_142_]
								* i_149_) >> 16);
							anIntArray1651[i_142_] = (anIntArray1650[i_142_] * i_149_ + anIntArray1651[i_142_]
								* i_150_) >> 16;
							anIntArray1650[i_142_] = i_151_;
						}
						if (i_144_ != 0) {
							int i_152_ = Model.anIntArray1710[i_144_];
							int i_153_ = Model.anIntArray1711[i_144_];
							int i_154_ = ((anIntArray1651[i_142_] * i_152_ + anIntArray1649[i_142_]
								* i_153_) >> 16);
							anIntArray1651[i_142_] = (anIntArray1651[i_142_] * i_153_ - anIntArray1649[i_142_]
								* i_152_) >> 16;
							anIntArray1649[i_142_] = i_154_;
						}
						anIntArray1649[i_142_] += Model.anInt1702;
						anIntArray1650[i_142_] += Model.anInt1703;
						anIntArray1651[i_142_] += Model.anInt1704;
					}
				}
			}
		} else if (i == 3) {
			for (int i_155_ = 0; i_155_ < i_126_; i_155_++) {
				int i_156_ = is[i_155_];
				if (i_156_ < anIntArrayArray1678.length) {
					int[] is_157_ = anIntArrayArray1678[i_156_];
					for (int element : is_157_) {
						int i_159_ = element;
						anIntArray1649[i_159_] -= Model.anInt1702;
						anIntArray1650[i_159_] -= Model.anInt1703;
						anIntArray1651[i_159_] -= Model.anInt1704;
						anIntArray1649[i_159_] = anIntArray1649[i_159_] * i_123_ / 128;
						anIntArray1650[i_159_] = anIntArray1650[i_159_] * i_124_ / 128;
						anIntArray1651[i_159_] = anIntArray1651[i_159_] * i_125_ / 128;
						anIntArray1649[i_159_] += Model.anInt1702;
						anIntArray1650[i_159_] += Model.anInt1703;
						anIntArray1651[i_159_] += Model.anInt1704;
					}
				}
			}
		} else if (i == 5) {
			if (anIntArrayArray1679 != null && anIntArray1661 != null) {
				for (int i_160_ = 0; i_160_ < i_126_; i_160_++) {
					int i_161_ = is[i_160_];
					if (i_161_ < anIntArrayArray1679.length) {
						int[] is_162_ = anIntArrayArray1679[i_161_];
						for (int element : is_162_) {
							int i_164_ = element;
							anIntArray1661[i_164_] += i_123_ * 8;
							if (anIntArray1661[i_164_] < 0) {
								anIntArray1661[i_164_] = 0;
							}
							if (anIntArray1661[i_164_] > 255) {
								anIntArray1661[i_164_] = 255;
							}
						}
					}
				}
			}
		}
	}

	public void method599(boolean bool) {
		if (bool) {
			for (int i = 0; i < anInt1648; i++) {
				int i_165_ = anIntArray1649[i];
				anIntArray1649[i] = anIntArray1651[i];
				anIntArray1651[i] = -i_165_;
			}
		}
	}

	public void method600(int i, int i_166_) {
		int i_167_ = Model.anIntArray1710[i];
		int i_168_ = Model.anIntArray1711[i];
		for (int i_169_ = 0; i_169_ < anInt1648; i_169_++) {
			int i_170_ = ((anIntArray1650[i_169_] * i_168_ - anIntArray1651[i_169_] * i_167_) >> 16);
			anIntArray1651[i_169_] = (anIntArray1650[i_169_] * i_167_ + anIntArray1651[i_169_]
				* i_168_) >> 16;
			anIntArray1650[i_169_] = i_170_;
		}
		i_166_ = 61 / i_166_;
	}

	public void method601(int i, int i_171_, boolean bool, int i_172_) {
		if (bool) {
			anInt1636 = -310;
		}
		for (int i_173_ = 0; i_173_ < anInt1648; i_173_++) {
			anIntArray1649[i_173_] += i;
			anIntArray1650[i_173_] += i_172_;
			anIntArray1651[i_173_] += i_171_;
		}
	}

	public void method602(int i, int i_174_) {
		for (int i_175_ = 0; i_175_ < anInt1652; i_175_++) {
			if (anIntArray1662[i_175_] == i) {
				anIntArray1662[i_175_] = i_174_;
			}
		}
	}

	public void method603(int i) {
		if (i != 0) {
			for (int i_176_ = 1; i_176_ > 0; i_176_++) {
				/* empty */
			}
		}
		for (int i_177_ = 0; i_177_ < anInt1648; i_177_++) {
			anIntArray1651[i_177_] = -anIntArray1651[i_177_];
		}
		for (int i_178_ = 0; i_178_ < anInt1652; i_178_++) {
			int i_179_ = anIntArray1653[i_178_];
			anIntArray1653[i_178_] = anIntArray1655[i_178_];
			anIntArray1655[i_178_] = i_179_;
		}
	}

	public void method604(int i, int i_180_, int i_181_, int i_182_) {
		for (int i_183_ = 0; i_183_ < anInt1648; i_183_++) {
			anIntArray1649[i_183_] = anIntArray1649[i_183_] * i_182_ / 128;
			anIntArray1650[i_183_] = anIntArray1650[i_183_] * i / 128;
			anIntArray1651[i_183_] = anIntArray1651[i_183_] * i_180_ / 128;
		}
		if (i_181_ != 9) {
			anInt1636 = 322;
		}
	}

	public final void preProcess(int i, int i_184_, int i_185_, int i_186_, int i_187_, boolean bool) {
		int i_188_ = (int) Math.sqrt((i_185_ * i_185_ + i_186_ * i_186_ + i_187_ * i_187_));
		int i_189_ = i_184_ * i_188_ >> 8;
		if (anIntArray1656 == null) {
			anIntArray1656 = new int[anInt1652];
			anIntArray1657 = new int[anInt1652];
			anIntArray1658 = new int[anInt1652];
		}
		if (((Class50_Sub1_Sub4) this).aClass40Array1474 == null) {
			((Class50_Sub1_Sub4) this).aClass40Array1474 = new Class40[anInt1648];
			for (int i_190_ = 0; i_190_ < anInt1648; i_190_++) {
				((Class50_Sub1_Sub4) this).aClass40Array1474[i_190_] = new Class40();
			}
		}
		for (int i_191_ = 0; i_191_ < anInt1652; i_191_++) {
			int i_192_ = anIntArray1653[i_191_];
			int i_193_ = anIntArray1654[i_191_];
			int i_194_ = anIntArray1655[i_191_];
			int i_195_ = anIntArray1649[i_193_] - anIntArray1649[i_192_];
			int i_196_ = anIntArray1650[i_193_] - anIntArray1650[i_192_];
			int i_197_ = anIntArray1651[i_193_] - anIntArray1651[i_192_];
			int i_198_ = anIntArray1649[i_194_] - anIntArray1649[i_192_];
			int i_199_ = anIntArray1650[i_194_] - anIntArray1650[i_192_];
			int i_200_ = anIntArray1651[i_194_] - anIntArray1651[i_192_];
			int i_201_ = i_196_ * i_200_ - i_199_ * i_197_;
			int i_202_ = i_197_ * i_198_ - i_200_ * i_195_;
			int i_203_;
			for (i_203_ = i_195_ * i_199_ - i_198_ * i_196_; (i_201_ > 8192 || i_202_ > 8192
				|| i_203_ > 8192 || i_201_ < -8192 || i_202_ < -8192 || i_203_ < -8192); i_203_ >>= 1) {
				i_201_ >>= 1;
				i_202_ >>= 1;
			}
			int i_204_ = (int) Math.sqrt((i_201_ * i_201_ + i_202_ * i_202_ + i_203_ * i_203_));
			if (i_204_ <= 0) {
				i_204_ = 1;
			}
			i_201_ = i_201_ * 256 / i_204_;
			i_202_ = i_202_ * 256 / i_204_;
			i_203_ = i_203_ * 256 / i_204_;
			if (anIntArray1659 == null || (anIntArray1659[i_191_] & 0x1) == 0) {
				Class40 class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_192_];
				(class40).anInt693 += i_201_;
				(class40).anInt694 += i_202_;
				(class40).anInt695 += i_203_;
				(class40).anInt696++;
				class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_193_];
				(class40).anInt693 += i_201_;
				(class40).anInt694 += i_202_;
				(class40).anInt695 += i_203_;
				(class40).anInt696++;
				class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_194_];
				(class40).anInt693 += i_201_;
				(class40).anInt694 += i_202_;
				(class40).anInt695 += i_203_;
				(class40).anInt696++;
			} else {
				int i_205_ = i + (i_185_ * i_201_ + i_186_ * i_202_ + i_187_ * i_203_)
					/ (i_189_ + i_189_ / 2);
				anIntArray1656[i_191_] = Model.method608(anIntArray1662[i_191_],
					i_205_, anIntArray1659[i_191_]);
			}
		}
		if (bool) {
			method607(i, i_189_, i_185_, i_186_, i_187_);
		} else {
			(this).aClass40Array1681 = new Class40[anInt1648];
			for (int i_206_ = 0; i_206_ < anInt1648; i_206_++) {
				Class40 class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_206_];
				Class40 class40_207_ = ((this).aClass40Array1681[i_206_] = new Class40());
				(class40_207_).anInt693 = (class40).anInt693;
				(class40_207_).anInt694 = (class40).anInt694;
				(class40_207_).anInt695 = (class40).anInt695;
				(class40_207_).anInt696 = (class40).anInt696;
			}
			anInt1668 = (i << 16) + (i_189_ & 0xffff);
		}
		if (bool) {
			method592();
		} else {
			method594(426);
		}
	}

	public final void method606(int i, int i_208_, int i_209_, int i_210_) {
		int i_211_ = anInt1668 >> 16;
		int i_212_ = anInt1668 << 16 >> 16;
		if (i_209_ != 0) {
			for (int i_213_ = 1; i_213_ > 0; i_213_++) {
				/* empty */
			}
		}
		method607(i_211_, i_212_, i_210_, i, i_208_);
	}

	private final void method607(int i, int i_214_, int i_215_, int i_216_, int i_217_) {
		for (int i_218_ = 0; i_218_ < anInt1652; i_218_++) {
			int i_219_ = anIntArray1653[i_218_];
			int i_220_ = anIntArray1654[i_218_];
			int i_221_ = anIntArray1655[i_218_];
			if (anIntArray1659 == null) {
				int i_222_ = anIntArray1662[i_218_];
				Class40 class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_219_];
				int i_223_ = i
					+ ((i_215_ * (class40).anInt693 + i_216_ * (class40).anInt694 + i_217_
						* (class40).anInt695) / (i_214_ * (class40).anInt696));
				anIntArray1656[i_218_] = Model.method608(i_222_, i_223_, 0);
				class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_220_];
				i_223_ = i
					+ ((i_215_ * (class40).anInt693 + i_216_ * (class40).anInt694 + i_217_
						* (class40).anInt695) / (i_214_ * (class40).anInt696));
				anIntArray1657[i_218_] = Model.method608(i_222_, i_223_, 0);
				class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_221_];
				i_223_ = i
					+ ((i_215_ * (class40).anInt693 + i_216_ * (class40).anInt694 + i_217_
						* (class40).anInt695) / (i_214_ * (class40).anInt696));
				anIntArray1658[i_218_] = Model.method608(i_222_, i_223_, 0);
			} else if ((anIntArray1659[i_218_] & 0x1) == 0) {
				int i_224_ = anIntArray1662[i_218_];
				int i_225_ = anIntArray1659[i_218_];
				Class40 class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_219_];
				int i_226_ = i
					+ ((i_215_ * (class40).anInt693 + i_216_ * (class40).anInt694 + i_217_
						* (class40).anInt695) / (i_214_ * (class40).anInt696));
				anIntArray1656[i_218_] = Model.method608(i_224_, i_226_, i_225_);
				class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_220_];
				i_226_ = i
					+ ((i_215_ * (class40).anInt693 + i_216_ * (class40).anInt694 + i_217_
						* (class40).anInt695) / (i_214_ * (class40).anInt696));
				anIntArray1657[i_218_] = Model.method608(i_224_, i_226_, i_225_);
				class40 = ((Class50_Sub1_Sub4) this).aClass40Array1474[i_221_];
				i_226_ = i
					+ ((i_215_ * (class40).anInt693 + i_216_ * (class40).anInt694 + i_217_
						* (class40).anInt695) / (i_214_ * (class40).anInt696));
				anIntArray1658[i_218_] = Model.method608(i_224_, i_226_, i_225_);
			}
		}
		((Class50_Sub1_Sub4) this).aClass40Array1474 = null;
		(this).aClass40Array1681 = null;
		anIntArray1676 = null;
		anIntArray1677 = null;
		if (anIntArray1659 != null) {
			for (int i_227_ = 0; i_227_ < anInt1652; i_227_++) {
				if ((anIntArray1659[i_227_] & 0x2) == 2) {
					return;
				}
			}
		}
		anIntArray1662 = null;
	}

	public static final int method608(int i, int i_228_, int i_229_) {
		if ((i_229_ & 0x2) == 2) {
			if (i_228_ < 0) {
				i_228_ = 0;
			} else if (i_228_ > 127) {
				i_228_ = 127;
			}
			i_228_ = 127 - i_228_;
			return i_228_;
		}
		i_228_ = i_228_ * (i & 0x7f) >> 7;
		if (i_228_ < 2) {
			i_228_ = 2;
		} else if (i_228_ > 126) {
			i_228_ = 126;
		}
		return (i & 0xff80) + i_228_;
	}

	public final void method609(int i, int i_230_, int i_231_, int i_232_, int i_233_, int i_234_,
		int i_235_) {
		int i_236_ = Renderer3D.anInt1532;
		int i_237_ = Renderer3D.anInt1533;
		int i_238_ = Model.anIntArray1710[i];
		int i_239_ = Model.anIntArray1711[i];
		int i_240_ = Model.anIntArray1710[i_230_];
		int i_241_ = Model.anIntArray1711[i_230_];
		int i_242_ = Model.anIntArray1710[i_231_];
		int i_243_ = Model.anIntArray1711[i_231_];
		int i_244_ = Model.anIntArray1710[i_232_];
		int i_245_ = Model.anIntArray1711[i_232_];
		int i_246_ = i_234_ * i_244_ + i_235_ * i_245_ >> 16;
		for (int i_247_ = 0; i_247_ < anInt1648; i_247_++) {
			int i_248_ = anIntArray1649[i_247_];
			int i_249_ = anIntArray1650[i_247_];
			int i_250_ = anIntArray1651[i_247_];
			if (i_231_ != 0) {
				int i_251_ = i_249_ * i_242_ + i_248_ * i_243_ >> 16;
				i_249_ = i_249_ * i_243_ - i_248_ * i_242_ >> 16;
				i_248_ = i_251_;
			}
			if (i != 0) {
				int i_252_ = i_249_ * i_239_ - i_250_ * i_238_ >> 16;
				i_250_ = i_249_ * i_238_ + i_250_ * i_239_ >> 16;
				i_249_ = i_252_;
			}
			if (i_230_ != 0) {
				int i_253_ = i_250_ * i_240_ + i_248_ * i_241_ >> 16;
				i_250_ = i_250_ * i_241_ - i_248_ * i_240_ >> 16;
				i_248_ = i_253_;
			}
			i_248_ += i_233_;
			i_249_ += i_234_;
			i_250_ += i_235_;
			int i_254_ = i_249_ * i_245_ - i_250_ * i_244_ >> 16;
			i_250_ = i_249_ * i_244_ + i_250_ * i_245_ >> 16;
			i_249_ = i_254_;
			Model.anIntArray1688[i_247_] = i_250_ - i_246_;
			Model.anIntArray1686[i_247_] = i_236_ + (i_248_ << 9) / i_250_;
			Model.anIntArray1687[i_247_] = i_237_ + (i_249_ << 9) / i_250_;
			if (anInt1664 > 0) {
				Model.anIntArray1689[i_247_] = i_248_;
				Model.anIntArray1690[i_247_] = i_249_;
				Model.anIntArray1691[i_247_] = i_250_;
			}
		}
		try {
			method610(false, false, 0);
		} catch (Exception exception) {
			/* empty */
		}
	}

	@Override
	public final void method571(int i, int i_255_, int i_256_, int i_257_, int i_258_, int i_259_,
		int i_260_, int i_261_, int i_262_) {
		int i_263_ = i_261_ * i_258_ - i_259_ * i_257_ >> 16;
		int i_264_ = i_260_ * i_255_ + i_263_ * i_256_ >> 16;
		int i_265_ = anInt1671 * i_256_ >> 16;
		int i_266_ = i_264_ + i_265_;
		if (i_266_ > 50 && i_264_ < 3500) {
			int i_267_ = i_261_ * i_257_ + i_259_ * i_258_ >> 16;
			int i_268_ = i_267_ - anInt1671 << 9;
			if (i_268_ / i_266_ < Renderer2D.middleX) {
				int i_269_ = i_267_ + anInt1671 << 9;
				if (i_269_ / i_266_ > -Renderer2D.middleX) {
					int i_270_ = i_260_ * i_256_ - i_263_ * i_255_ >> 16;
					int i_271_ = anInt1671 * i_255_ >> 16;
					int i_272_ = i_270_ + i_271_ << 9;
					if (i_272_ / i_266_ > -Renderer2D.anInt1433) {
						int i_273_ = i_271_ + (anInt1475 * i_256_ >> 16);
						int i_274_ = i_270_ - i_273_ << 9;
						if (i_274_ / i_266_ < Renderer2D.anInt1433) {
							int i_275_ = i_265_ + (anInt1475 * i_255_ >> 16);
							boolean bool = false;
							if (i_264_ - i_275_ <= 50) {
								bool = true;
							}
							boolean bool_276_ = false;
							if (i_262_ > 0 && Model.aBoolean1705) {
								int i_277_ = i_264_ - i_265_;
								if (i_277_ <= 50) {
									i_277_ = 50;
								}
								if (i_267_ > 0) {
									i_268_ /= i_266_;
									i_269_ /= i_277_;
								} else {
									i_269_ /= i_266_;
									i_268_ /= i_277_;
								}
								if (i_270_ > 0) {
									i_274_ /= i_266_;
									i_272_ /= i_277_;
								} else {
									i_272_ /= i_266_;
									i_274_ /= i_277_;
								}
								int i_278_ = (Model.anInt1706 - Renderer3D.anInt1532);
								int i_279_ = (Model.anInt1707 - Renderer3D.anInt1533);
								if (i_278_ > i_268_ && i_278_ < i_269_ && i_279_ > i_274_
									&& i_279_ < i_272_) {
									if (aBoolean1680) {
										Model.anIntArray1709[Model.anInt1708++] = i_262_;
									} else {
										bool_276_ = true;
									}
								}
							}
							int i_280_ = Renderer3D.anInt1532;
							int i_281_ = Renderer3D.anInt1533;
							int i_282_ = 0;
							int i_283_ = 0;
							if (i != 0) {
								i_282_ = Model.anIntArray1710[i];
								i_283_ = Model.anIntArray1711[i];
							}
							for (int i_284_ = 0; i_284_ < anInt1648; i_284_++) {
								int i_285_ = anIntArray1649[i_284_];
								int i_286_ = anIntArray1650[i_284_];
								int i_287_ = anIntArray1651[i_284_];
								if (i != 0) {
									int i_288_ = (i_287_ * i_282_ + i_285_ * i_283_ >> 16);
									i_287_ = (i_287_ * i_283_ - i_285_ * i_282_ >> 16);
									i_285_ = i_288_;
								}
								i_285_ += i_259_;
								i_286_ += i_260_;
								i_287_ += i_261_;
								int i_289_ = i_287_ * i_257_ + i_285_ * i_258_ >> 16;
								i_287_ = i_287_ * i_258_ - i_285_ * i_257_ >> 16;
								i_285_ = i_289_;
								i_289_ = i_286_ * i_256_ - i_287_ * i_255_ >> 16;
								i_287_ = i_286_ * i_255_ + i_287_ * i_256_ >> 16;
								i_286_ = i_289_;
								Model.anIntArray1688[i_284_] = i_287_ - i_264_;
								if (i_287_ >= 50) {
									Model.anIntArray1686[i_284_] = i_280_
										+ (i_285_ << 9) / i_287_;
									Model.anIntArray1687[i_284_] = i_281_
										+ (i_286_ << 9) / i_287_;
								} else {
									Model.anIntArray1686[i_284_] = -5000;
									bool = true;
								}
								if (bool || anInt1664 > 0) {
									Model.anIntArray1689[i_284_] = i_285_;
									Model.anIntArray1690[i_284_] = i_286_;
									Model.anIntArray1691[i_284_] = i_287_;
								}
							}
							try {
								method610(bool, bool_276_, i_262_);
							} catch (Exception exception) {
								/* empty */
							}
						}
					}
				}
			}
		}
	}

	private final void method610(boolean bool, boolean bool_290_, int i) {
		for (int i_291_ = 0; i_291_ < anInt1673; i_291_++) {
			Model.anIntArray1692[i_291_] = 0;
		}
		for (int i_292_ = 0; i_292_ < anInt1652; i_292_++) {
			if (anIntArray1659 == null || anIntArray1659[i_292_] != -1) {
				int i_293_ = anIntArray1653[i_292_];
				int i_294_ = anIntArray1654[i_292_];
				int i_295_ = anIntArray1655[i_292_];
				int i_296_ = Model.anIntArray1686[i_293_];
				int i_297_ = Model.anIntArray1686[i_294_];
				int i_298_ = Model.anIntArray1686[i_295_];
				if (bool && (i_296_ == -5000 || i_297_ == -5000 || i_298_ == -5000)) {
					Model.aBooleanArray1685[i_292_] = true;
					int i_299_ = ((Model.anIntArray1688[i_293_]
						+ Model.anIntArray1688[i_294_] + Model.anIntArray1688[i_295_]) / 3 + anInt1674);
					Model.anIntArrayArray1693[i_299_][Model.anIntArray1692[i_299_]++] = i_292_;
				} else {
					if (bool_290_
						&& method613(Model.anInt1706,
							Model.anInt1707,
							Model.anIntArray1687[i_293_],
							Model.anIntArray1687[i_294_],
							Model.anIntArray1687[i_295_], i_296_, i_297_, i_298_)) {
						Model.anIntArray1709[Model.anInt1708++] = i;
						bool_290_ = false;
					}
					if (((i_296_ - i_297_)
						* (Model.anIntArray1687[i_295_] - Model.anIntArray1687[i_294_]) - ((Model.anIntArray1687[i_293_] - Model.anIntArray1687[i_294_]) * (i_298_ - i_297_))) > 0) {
						Model.aBooleanArray1685[i_292_] = false;
						if (i_296_ < 0 || i_297_ < 0 || i_298_ < 0
							|| i_296_ > Renderer2D.endX
							|| i_297_ > Renderer2D.endX
							|| i_298_ > Renderer2D.endX) {
							Model.aBooleanArray1684[i_292_] = true;
						} else {
							Model.aBooleanArray1684[i_292_] = false;
						}
						int i_300_ = ((Model.anIntArray1688[i_293_]
							+ Model.anIntArray1688[i_294_] + Model.anIntArray1688[i_295_]) / 3 + anInt1674);
						Model.anIntArrayArray1693[i_300_][Model.anIntArray1692[i_300_]++] = i_292_;
					}
				}
			}
		}
		if (anIntArray1660 == null) {
			for (int i_301_ = anInt1673 - 1; i_301_ >= 0; i_301_--) {
				int i_302_ = Model.anIntArray1692[i_301_];
				if (i_302_ > 0) {
					int[] is = Model.anIntArrayArray1693[i_301_];
					for (int i_303_ = 0; i_303_ < i_302_; i_303_++) {
						method611(is[i_303_]);
					}
				}
			}
		} else {
			for (int i_304_ = 0; i_304_ < 12; i_304_++) {
				Model.anIntArray1694[i_304_] = 0;
				Model.anIntArray1698[i_304_] = 0;
			}
			for (int i_305_ = anInt1673 - 1; i_305_ >= 0; i_305_--) {
				int i_306_ = Model.anIntArray1692[i_305_];
				if (i_306_ > 0) {
					int[] is = Model.anIntArrayArray1693[i_305_];
					for (int i_307_ = 0; i_307_ < i_306_; i_307_++) {
						int i_308_ = is[i_307_];
						int i_309_ = anIntArray1660[i_308_];
						int i_310_ = Model.anIntArray1694[i_309_]++;
						Model.anIntArrayArray1695[i_309_][i_310_] = i_308_;
						if (i_309_ < 10) {
							Model.anIntArray1698[i_309_] += i_305_;
						} else if (i_309_ == 10) {
							Model.anIntArray1696[i_310_] = i_305_;
						} else {
							Model.anIntArray1697[i_310_] = i_305_;
						}
					}
				}
			}
			int i_311_ = 0;
			if (Model.anIntArray1694[1] > 0
				|| Model.anIntArray1694[2] > 0) {
				i_311_ = ((Model.anIntArray1698[1] + Model.anIntArray1698[2]) / (Model.anIntArray1694[1] + Model.anIntArray1694[2]));
			}
			int i_312_ = 0;
			if (Model.anIntArray1694[3] > 0
				|| Model.anIntArray1694[4] > 0) {
				i_312_ = ((Model.anIntArray1698[3] + Model.anIntArray1698[4]) / (Model.anIntArray1694[3] + Model.anIntArray1694[4]));
			}
			int i_313_ = 0;
			if (Model.anIntArray1694[6] > 0
				|| Model.anIntArray1694[8] > 0) {
				i_313_ = ((Model.anIntArray1698[6] + Model.anIntArray1698[8]) / (Model.anIntArray1694[6] + Model.anIntArray1694[8]));
			}
			int i_314_ = 0;
			int i_315_ = Model.anIntArray1694[10];
			int[] is = Model.anIntArrayArray1695[10];
			int[] is_316_ = Model.anIntArray1696;
			if (i_314_ == i_315_) {
				i_314_ = 0;
				i_315_ = Model.anIntArray1694[11];
				is = Model.anIntArrayArray1695[11];
				is_316_ = Model.anIntArray1697;
			}
			int i_317_;
			if (i_314_ < i_315_) {
				i_317_ = is_316_[i_314_];
			} else {
				i_317_ = -1000;
			}
			for (int i_318_ = 0; i_318_ < 10; i_318_++) {
				while (i_318_ == 0) {
					if (i_317_ <= i_311_) {
						break;
					}
					method611(is[i_314_++]);
					if (i_314_ == i_315_ && is != Model.anIntArrayArray1695[11]) {
						i_314_ = 0;
						i_315_ = Model.anIntArray1694[11];
						is = Model.anIntArrayArray1695[11];
						is_316_ = Model.anIntArray1697;
					}
					if (i_314_ < i_315_) {
						i_317_ = is_316_[i_314_];
					} else {
						i_317_ = -1000;
					}
				}
				while (i_318_ == 3) {
					if (i_317_ <= i_312_) {
						break;
					}
					method611(is[i_314_++]);
					if (i_314_ == i_315_ && is != Model.anIntArrayArray1695[11]) {
						i_314_ = 0;
						i_315_ = Model.anIntArray1694[11];
						is = Model.anIntArrayArray1695[11];
						is_316_ = Model.anIntArray1697;
					}
					if (i_314_ < i_315_) {
						i_317_ = is_316_[i_314_];
					} else {
						i_317_ = -1000;
					}
				}
				while (i_318_ == 5 && i_317_ > i_313_) {
					method611(is[i_314_++]);
					if (i_314_ == i_315_ && is != Model.anIntArrayArray1695[11]) {
						i_314_ = 0;
						i_315_ = Model.anIntArray1694[11];
						is = Model.anIntArrayArray1695[11];
						is_316_ = Model.anIntArray1697;
					}
					if (i_314_ < i_315_) {
						i_317_ = is_316_[i_314_];
					} else {
						i_317_ = -1000;
					}
				}
				int i_319_ = Model.anIntArray1694[i_318_];
				int[] is_320_ = Model.anIntArrayArray1695[i_318_];
				for (int i_321_ = 0; i_321_ < i_319_; i_321_++) {
					method611(is_320_[i_321_]);
				}
			}
			while (i_317_ != -1000) {
				method611(is[i_314_++]);
				if (i_314_ == i_315_ && is != Model.anIntArrayArray1695[11]) {
					i_314_ = 0;
					is = Model.anIntArrayArray1695[11];
					i_315_ = Model.anIntArray1694[11];
					is_316_ = Model.anIntArray1697;
				}
				if (i_314_ < i_315_) {
					i_317_ = is_316_[i_314_];
				} else {
					i_317_ = -1000;
				}
			}
		}
	}

	private final void method611(int i) {
		if (Model.aBooleanArray1685[i]) {
			method612(i);
		} else {
			int i_322_ = anIntArray1653[i];
			int i_323_ = anIntArray1654[i];
			int i_324_ = anIntArray1655[i];
			Renderer3D.aBoolean1528 = Model.aBooleanArray1684[i];
			if (anIntArray1661 == null) {
				Renderer3D.anInt1531 = 0;
			} else {
				Renderer3D.anInt1531 = anIntArray1661[i];
			}
			int i_325_;
			if (anIntArray1659 == null) {
				i_325_ = 0;
			} else {
				i_325_ = anIntArray1659[i] & 0x3;
			}
			if (i_325_ == 0) {
				Renderer3D.method514(Model.anIntArray1687[i_322_],
					Model.anIntArray1687[i_323_],
					Model.anIntArray1687[i_324_],
					Model.anIntArray1686[i_322_],
					Model.anIntArray1686[i_323_],
					Model.anIntArray1686[i_324_], anIntArray1656[i],
					anIntArray1657[i], anIntArray1658[i]);
			} else if (i_325_ == 1) {
				Renderer3D.method516(Model.anIntArray1687[i_322_],
					Model.anIntArray1687[i_323_],
					Model.anIntArray1687[i_324_],
					Model.anIntArray1686[i_322_],
					Model.anIntArray1686[i_323_],
					Model.anIntArray1686[i_324_],
					(Model.anIntArray1712[anIntArray1656[i]]));
			} else if (i_325_ == 2) {
				int i_326_ = anIntArray1659[i] >> 2;
				int i_327_ = anIntArray1665[i_326_];
				int i_328_ = anIntArray1666[i_326_];
				int i_329_ = anIntArray1667[i_326_];
				Renderer3D.method518(Model.anIntArray1687[i_322_],
					Model.anIntArray1687[i_323_],
					Model.anIntArray1687[i_324_],
					Model.anIntArray1686[i_322_],
					Model.anIntArray1686[i_323_],
					Model.anIntArray1686[i_324_], anIntArray1656[i],
					anIntArray1657[i], anIntArray1658[i],
					Model.anIntArray1689[i_327_],
					Model.anIntArray1689[i_328_],
					Model.anIntArray1689[i_329_],
					Model.anIntArray1690[i_327_],
					Model.anIntArray1690[i_328_],
					Model.anIntArray1690[i_329_],
					Model.anIntArray1691[i_327_],
					Model.anIntArray1691[i_328_],
					Model.anIntArray1691[i_329_], anIntArray1662[i]);
			} else if (i_325_ == 3) {
				int i_330_ = anIntArray1659[i] >> 2;
				int i_331_ = anIntArray1665[i_330_];
				int i_332_ = anIntArray1666[i_330_];
				int i_333_ = anIntArray1667[i_330_];
				Renderer3D.method518(Model.anIntArray1687[i_322_],
					Model.anIntArray1687[i_323_],
					Model.anIntArray1687[i_324_],
					Model.anIntArray1686[i_322_],
					Model.anIntArray1686[i_323_],
					Model.anIntArray1686[i_324_], anIntArray1656[i],
					anIntArray1656[i], anIntArray1656[i],
					Model.anIntArray1689[i_331_],
					Model.anIntArray1689[i_332_],
					Model.anIntArray1689[i_333_],
					Model.anIntArray1690[i_331_],
					Model.anIntArray1690[i_332_],
					Model.anIntArray1690[i_333_],
					Model.anIntArray1691[i_331_],
					Model.anIntArray1691[i_332_],
					Model.anIntArray1691[i_333_], anIntArray1662[i]);
			}
		}
	}

	private final void method612(int i) {
		int i_334_ = Renderer3D.anInt1532;
		int i_335_ = Renderer3D.anInt1533;
		int i_336_ = 0;
		int i_337_ = anIntArray1653[i];
		int i_338_ = anIntArray1654[i];
		int i_339_ = anIntArray1655[i];
		int i_340_ = Model.anIntArray1691[i_337_];
		int i_341_ = Model.anIntArray1691[i_338_];
		int i_342_ = Model.anIntArray1691[i_339_];
		if (i_340_ >= 50) {
			Model.anIntArray1699[i_336_] = Model.anIntArray1686[i_337_];
			Model.anIntArray1700[i_336_] = Model.anIntArray1687[i_337_];
			Model.anIntArray1701[i_336_++] = anIntArray1656[i];
		} else {
			int i_343_ = Model.anIntArray1689[i_337_];
			int i_344_ = Model.anIntArray1690[i_337_];
			int i_345_ = anIntArray1656[i];
			if (i_342_ >= 50) {
				int i_346_ = (50 - i_340_) * Model.anIntArray1713[i_342_ - i_340_];
				Model.anIntArray1699[i_336_] = (i_334_ + (i_343_
					+ ((Model.anIntArray1689[i_339_] - i_343_) * i_346_ >> 16) << 9) / 50);
				Model.anIntArray1700[i_336_] = (i_335_ + (i_344_
					+ ((Model.anIntArray1690[i_339_] - i_344_) * i_346_ >> 16) << 9) / 50);
				Model.anIntArray1701[i_336_++] = i_345_
					+ ((anIntArray1658[i] - i_345_) * i_346_ >> 16);
			}
			if (i_341_ >= 50) {
				int i_347_ = (50 - i_340_) * Model.anIntArray1713[i_341_ - i_340_];
				Model.anIntArray1699[i_336_] = (i_334_ + (i_343_
					+ ((Model.anIntArray1689[i_338_] - i_343_) * i_347_ >> 16) << 9) / 50);
				Model.anIntArray1700[i_336_] = (i_335_ + (i_344_
					+ ((Model.anIntArray1690[i_338_] - i_344_) * i_347_ >> 16) << 9) / 50);
				Model.anIntArray1701[i_336_++] = i_345_
					+ ((anIntArray1657[i] - i_345_) * i_347_ >> 16);
			}
		}
		if (i_341_ >= 50) {
			Model.anIntArray1699[i_336_] = Model.anIntArray1686[i_338_];
			Model.anIntArray1700[i_336_] = Model.anIntArray1687[i_338_];
			Model.anIntArray1701[i_336_++] = anIntArray1657[i];
		} else {
			int i_348_ = Model.anIntArray1689[i_338_];
			int i_349_ = Model.anIntArray1690[i_338_];
			int i_350_ = anIntArray1657[i];
			if (i_340_ >= 50) {
				int i_351_ = (50 - i_341_) * Model.anIntArray1713[i_340_ - i_341_];
				Model.anIntArray1699[i_336_] = (i_334_ + (i_348_
					+ ((Model.anIntArray1689[i_337_] - i_348_) * i_351_ >> 16) << 9) / 50);
				Model.anIntArray1700[i_336_] = (i_335_ + (i_349_
					+ ((Model.anIntArray1690[i_337_] - i_349_) * i_351_ >> 16) << 9) / 50);
				Model.anIntArray1701[i_336_++] = i_350_
					+ ((anIntArray1656[i] - i_350_) * i_351_ >> 16);
			}
			if (i_342_ >= 50) {
				int i_352_ = (50 - i_341_) * Model.anIntArray1713[i_342_ - i_341_];
				Model.anIntArray1699[i_336_] = (i_334_ + (i_348_
					+ ((Model.anIntArray1689[i_339_] - i_348_) * i_352_ >> 16) << 9) / 50);
				Model.anIntArray1700[i_336_] = (i_335_ + (i_349_
					+ ((Model.anIntArray1690[i_339_] - i_349_) * i_352_ >> 16) << 9) / 50);
				Model.anIntArray1701[i_336_++] = i_350_
					+ ((anIntArray1658[i] - i_350_) * i_352_ >> 16);
			}
		}
		if (i_342_ >= 50) {
			Model.anIntArray1699[i_336_] = Model.anIntArray1686[i_339_];
			Model.anIntArray1700[i_336_] = Model.anIntArray1687[i_339_];
			Model.anIntArray1701[i_336_++] = anIntArray1658[i];
		} else {
			int i_353_ = Model.anIntArray1689[i_339_];
			int i_354_ = Model.anIntArray1690[i_339_];
			int i_355_ = anIntArray1658[i];
			if (i_341_ >= 50) {
				int i_356_ = (50 - i_342_) * Model.anIntArray1713[i_341_ - i_342_];
				Model.anIntArray1699[i_336_] = (i_334_ + (i_353_
					+ ((Model.anIntArray1689[i_338_] - i_353_) * i_356_ >> 16) << 9) / 50);
				Model.anIntArray1700[i_336_] = (i_335_ + (i_354_
					+ ((Model.anIntArray1690[i_338_] - i_354_) * i_356_ >> 16) << 9) / 50);
				Model.anIntArray1701[i_336_++] = i_355_
					+ ((anIntArray1657[i] - i_355_) * i_356_ >> 16);
			}
			if (i_340_ >= 50) {
				int i_357_ = (50 - i_342_) * Model.anIntArray1713[i_340_ - i_342_];
				Model.anIntArray1699[i_336_] = (i_334_ + (i_353_
					+ ((Model.anIntArray1689[i_337_] - i_353_) * i_357_ >> 16) << 9) / 50);
				Model.anIntArray1700[i_336_] = (i_335_ + (i_354_
					+ ((Model.anIntArray1690[i_337_] - i_354_) * i_357_ >> 16) << 9) / 50);
				Model.anIntArray1701[i_336_++] = i_355_
					+ ((anIntArray1656[i] - i_355_) * i_357_ >> 16);
			}
		}
		int i_358_ = Model.anIntArray1699[0];
		int i_359_ = Model.anIntArray1699[1];
		int i_360_ = Model.anIntArray1699[2];
		int i_361_ = Model.anIntArray1700[0];
		int i_362_ = Model.anIntArray1700[1];
		int i_363_ = Model.anIntArray1700[2];
		if (((i_358_ - i_359_) * (i_363_ - i_362_) - (i_361_ - i_362_) * (i_360_ - i_359_)) > 0) {
			Renderer3D.aBoolean1528 = false;
			if (i_336_ == 3) {
				if (i_358_ < 0 || i_359_ < 0 || i_360_ < 0 || i_358_ > Renderer2D.endX
					|| i_359_ > Renderer2D.endX || i_360_ > Renderer2D.endX) {
					Renderer3D.aBoolean1528 = true;
				}
				int i_364_;
				if (anIntArray1659 == null) {
					i_364_ = 0;
				} else {
					i_364_ = anIntArray1659[i] & 0x3;
				}
				if (i_364_ == 0) {
					Renderer3D.method514(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, Model.anIntArray1701[0],
						Model.anIntArray1701[1],
						Model.anIntArray1701[2]);
				} else if (i_364_ == 1) {
					Renderer3D.method516(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, (Model.anIntArray1712[anIntArray1656[i]]));
				} else if (i_364_ == 2) {
					int i_365_ = anIntArray1659[i] >> 2;
					int i_366_ = anIntArray1665[i_365_];
					int i_367_ = anIntArray1666[i_365_];
					int i_368_ = anIntArray1667[i_365_];
					Renderer3D.method518(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, Model.anIntArray1701[0],
						Model.anIntArray1701[1],
						Model.anIntArray1701[2],
						Model.anIntArray1689[i_366_],
						Model.anIntArray1689[i_367_],
						Model.anIntArray1689[i_368_],
						Model.anIntArray1690[i_366_],
						Model.anIntArray1690[i_367_],
						Model.anIntArray1690[i_368_],
						Model.anIntArray1691[i_366_],
						Model.anIntArray1691[i_367_],
						Model.anIntArray1691[i_368_], anIntArray1662[i]);
				} else if (i_364_ == 3) {
					int i_369_ = anIntArray1659[i] >> 2;
					int i_370_ = anIntArray1665[i_369_];
					int i_371_ = anIntArray1666[i_369_];
					int i_372_ = anIntArray1667[i_369_];
					Renderer3D.method518(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, anIntArray1656[i], anIntArray1656[i], anIntArray1656[i],
						Model.anIntArray1689[i_370_],
						Model.anIntArray1689[i_371_],
						Model.anIntArray1689[i_372_],
						Model.anIntArray1690[i_370_],
						Model.anIntArray1690[i_371_],
						Model.anIntArray1690[i_372_],
						Model.anIntArray1691[i_370_],
						Model.anIntArray1691[i_371_],
						Model.anIntArray1691[i_372_], anIntArray1662[i]);
				}
			}
			if (i_336_ == 4) {
				if (i_358_ < 0 || i_359_ < 0 || i_360_ < 0 || i_358_ > Renderer2D.endX
					|| i_359_ > Renderer2D.endX || i_360_ > Renderer2D.endX
					|| Model.anIntArray1699[3] < 0
					|| Model.anIntArray1699[3] > Renderer2D.endX) {
					Renderer3D.aBoolean1528 = true;
				}
				int i_373_;
				if (anIntArray1659 == null) {
					i_373_ = 0;
				} else {
					i_373_ = anIntArray1659[i] & 0x3;
				}
				if (i_373_ == 0) {
					Renderer3D.method514(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, Model.anIntArray1701[0],
						Model.anIntArray1701[1],
						Model.anIntArray1701[2]);
					Renderer3D.method514(i_361_, i_363_,
						Model.anIntArray1700[3], i_358_, i_360_,
						Model.anIntArray1699[3],
						Model.anIntArray1701[0],
						Model.anIntArray1701[2],
						Model.anIntArray1701[3]);
				} else if (i_373_ == 1) {
					int i_374_ = Model.anIntArray1712[anIntArray1656[i]];
					Renderer3D.method516(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, i_374_);
					Renderer3D.method516(i_361_, i_363_,
						Model.anIntArray1700[3], i_358_, i_360_,
						Model.anIntArray1699[3], i_374_);
				} else if (i_373_ == 2) {
					int i_375_ = anIntArray1659[i] >> 2;
					int i_376_ = anIntArray1665[i_375_];
					int i_377_ = anIntArray1666[i_375_];
					int i_378_ = anIntArray1667[i_375_];
					Renderer3D.method518(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, Model.anIntArray1701[0],
						Model.anIntArray1701[1],
						Model.anIntArray1701[2],
						Model.anIntArray1689[i_376_],
						Model.anIntArray1689[i_377_],
						Model.anIntArray1689[i_378_],
						Model.anIntArray1690[i_376_],
						Model.anIntArray1690[i_377_],
						Model.anIntArray1690[i_378_],
						Model.anIntArray1691[i_376_],
						Model.anIntArray1691[i_377_],
						Model.anIntArray1691[i_378_], anIntArray1662[i]);
					Renderer3D.method518(i_361_, i_363_,
						Model.anIntArray1700[3], i_358_, i_360_,
						Model.anIntArray1699[3],
						Model.anIntArray1701[0],
						Model.anIntArray1701[2],
						Model.anIntArray1701[3],
						Model.anIntArray1689[i_376_],
						Model.anIntArray1689[i_377_],
						Model.anIntArray1689[i_378_],
						Model.anIntArray1690[i_376_],
						Model.anIntArray1690[i_377_],
						Model.anIntArray1690[i_378_],
						Model.anIntArray1691[i_376_],
						Model.anIntArray1691[i_377_],
						Model.anIntArray1691[i_378_], anIntArray1662[i]);
				} else if (i_373_ == 3) {
					int i_379_ = anIntArray1659[i] >> 2;
					int i_380_ = anIntArray1665[i_379_];
					int i_381_ = anIntArray1666[i_379_];
					int i_382_ = anIntArray1667[i_379_];
					Renderer3D.method518(i_361_, i_362_, i_363_, i_358_, i_359_,
						i_360_, anIntArray1656[i], anIntArray1656[i], anIntArray1656[i],
						Model.anIntArray1689[i_380_],
						Model.anIntArray1689[i_381_],
						Model.anIntArray1689[i_382_],
						Model.anIntArray1690[i_380_],
						Model.anIntArray1690[i_381_],
						Model.anIntArray1690[i_382_],
						Model.anIntArray1691[i_380_],
						Model.anIntArray1691[i_381_],
						Model.anIntArray1691[i_382_], anIntArray1662[i]);
					Renderer3D.method518(i_361_, i_363_,
						Model.anIntArray1700[3], i_358_, i_360_,
						Model.anIntArray1699[3], anIntArray1656[i],
						anIntArray1656[i], anIntArray1656[i],
						Model.anIntArray1689[i_380_],
						Model.anIntArray1689[i_381_],
						Model.anIntArray1689[i_382_],
						Model.anIntArray1690[i_380_],
						Model.anIntArray1690[i_381_],
						Model.anIntArray1690[i_382_],
						Model.anIntArray1691[i_380_],
						Model.anIntArray1691[i_381_],
						Model.anIntArray1691[i_382_], anIntArray1662[i]);
				}
			}
		}
	}

	private final boolean method613(int i, int i_383_, int i_384_, int i_385_, int i_386_,
		int i_387_, int i_388_, int i_389_) {
		if (i_383_ < i_384_ && i_383_ < i_385_ && i_383_ < i_386_) {
			return false;
		}
		if (i_383_ > i_384_ && i_383_ > i_385_ && i_383_ > i_386_) {
			return false;
		}
		if (i < i_387_ && i < i_388_ && i < i_389_) {
			return false;
		}
		if (i > i_387_ && i > i_388_ && i > i_389_) {
			return false;
		}
		return true;
	}
}
